package com.wzh.common.general.result;

import lombok.AllArgsConstructor;
import lombok.Getter;

/**
 * 返回码枚举
 *
 * @author wzh
 */
@Getter
@AllArgsConstructor
public enum ResultCode implements IResultCode {
    /**
     * 操作成功
     */
    SUCCESS(200, "操作成功"),

    /**
     * 业务异常
     */
    ERROR(400, "业务异常"),

    /**
     * 未认证
     */
    UNAUTHORIZED(401, "未认证"),

    /**
     * 未授权
     */
    FORBIDDEN(403, "未授权"),

    /**
     * 资源不存在
     */
    NOT_FOUND(404, "资源不存在"),

    /**
     * 服务器内部错误
     */
    INTERNAL_SERVER_ERROR(500, "服务器内部错误"),

    /**
     * 参数错误
     */
    PARAM_ERROR(1000, "参数错误"),

    /**
     * 验证码错误
     */
    CAPTCHA_ERROR(1001, "验证码错误"),

    /**
     * 用户名或密码错误
     */
    USERNAME_PASSWORD_ERROR(1002, "用户名或密码错误"),

    /**
     * 用户已存在
     */
    USER_EXISTS(1003, "用户已存在"),

    /**
     * 用户不存在
     */
    USER_NOT_EXISTS(1004, "用户不存在"),

    /**
     * 用户已被禁用
     */
    USER_DISABLED(1005, "用户已被禁用"),

    /**
     * 令牌已过期
     */
    TOKEN_EXPIRED(1006, "令牌已过期"),

    /**
     * 令牌错误
     */
    TOKEN_ERROR(1007, "令牌错误"),

    /**
     * 令牌被顶下线
     */
    TOKEN_OUT(1008, "您已被顶下线"),

    /**
     * 令牌主动登出
     */
    TOKEN_LOGOUT(1009, "您已安全登出");

    /**
     * 状态码
     */
    private final int code;

    /**
     * 消息
     */
    private final String message;
}